# -*- coding: utf-8 -*-
#declaracao de uma lista arbitraria de numeros naturais
lista = [1,2,3,4,5,4,4,2,3,5,2,6]
print lista
print "'''''''"

#formacao de conjuntos
conj1= set(lista)
conj2=set([1,4,5,8])
print conj1
print conj2
print "''''''''"

#interseccao de conjuntos
conj3 = conj1.intersection(conj2)
print conj3
print "''''''''"

#lista com elementos nao redundantes
lista1 = [x for x in conj1]
print lista1
print "''''''''"

###############################
#dicionarios
###############################

#declaracao de dicionario
d={}

#elementos do dicionario
d['a'] = 'x'
d['e'] = 'y'
d['i'] = 'z'
d['o'] = 't'
d['u'] = 'w'
print d
print "''''''''"
frase = 'Cronus castrou o seu pai Urano'
print frase
print "''''''''"

# a frase2 fica codificada
frase2= ''
for x in frase:
	if x in set(['a', 'e', 'i', 'o', 'u']):
		frase2 += d[x]
	else:
		frase2 += x
		pass
	pass
	
print frase2
print "''''''''"
	
# declaracao de uma funcao
f= lambda x: d[x] if x in d else x
print f
print "''''''''"

#procedimento de codificacao funcional
frase3= reduce(lambda x, y: x + y, map(f, frase))
print frase3
print "''''''''"

#busca dos valores no dicionario
for chave, valor in d.iteritems():
	print chave, valor
